![Xcode 16.0 beta 3 を使っている場合に Carthage 0.39.1 でビルドができない](https://devio2024-media.developers.io/image/upload/v1721783513/user-gen-eyecatch/bswbkibrftryr9bphwxq.png)
Xcode 16.0 beta 3 を使っている場合に Carthage 0.39.1 でビルドができない
現在開発しているiOSアプリはパッケージマネージャとして、CarthageとCocoaPodsを利用している。Carthageは事前にライブラリをビルドしてxcframeworkを出力して、全体のビルド時間を短縮することができる。IntelチップからAppleチップへの移行であまり恩恵を感じなくなっているものの、過去には1時間半かかっていたビルド時間を10分以下に短縮できていたので重宝していた。
さて、先行して Xcode 16.0 betaでアプリをビルドできるのか調査をおこない、Xcode 16.0 beta 3 をアクティブにしている場合、Carthage 0.39.1
を使ってビルドができないことが判明した。
検証環境
- Xcode 16.0 beta 3
- macOS Sonoma 14.5
問題: Xcode 16.0 を使っている場合、Carthageでビルドエラーが発生する
Xcode 16.0 beta 3をアクティブにしている状態で、Carthage を使い、いつものようにAlamofireのビルドをおこなおうとした時に、ビルドエラーが発生した。
carthage bootstrap --platform ios --use-xcframeworks Alamofire
Alamofire側の問題かと思ったが、調査したところ、それ以外のライブラリでもビルドエラーが発生していたため、Carthage側の問題であることがわかった。
解決編
Carthage 0.39.1
は、Xcode 16.0 には対応していない。Xcode 16対応のCarthageも現時点ではリリースされていない。ただし、masterブランチでは対応済みのため、一度Carthageを削除して、masterブランチ版のCarthageをインストールすればよい。このコマンドは、Carthageそのものをビルドするため、時間があるときに実施するとよい。
brew uninstall carthage; brew install --head carthage
また他のバージョンのXcodeでビルドした中間ファイルが残っている可能性があるため、合わせて削除しておければより安心だろう。
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/org.carthage.CarthageKit
rm -rf ~/Library/Caches/carthage
キャッシュを削除した上で、先ほどビルドに失敗したコマンドを実行してみよう。問題なくビルドすれば解決だ。
carthage bootstrap --platform ios --use-xcframeworks Alamofire
関連記事